The present invention relates to non-volatile storage of data within computers and to non-volatile storage within computer network environments.
A common problem with computer systems is that they are quickly outdated. In order to extend the life of a computer, two methods are commonly employed.
A first method involves purchasing a computer that has more resources than are necessary so that as computer technology advances and further resources are required the system remains sufficient. To this end, computers are commonly provided with hard disks that are substantially larger than necessary for most users. In this way, the computer life is extended without a need for upgrading. Unfortunately, this results in much unused or wasted storage space. That said, the storage available on hard disk drives soon is insufficient even for common applications. For example, 8 years ago a hard disk drive having 270 Mb of storage space was common. Today, such a device is insufficient for most common tasks on a PC compatible computer system. Today, most PC compatible computers have hard disk drives with 6 Gb of storage or more.
A second method involves upgrading parts of a computer where parts are replaced with newer parts when necessary. This is costly and inconvenient. For example, in order to accommodate the increased data storage requirements, it is common to upgrade a system by adding an additional hard drive to a system or replacing an existing hard drive. This requires shutting down the system and disconnecting it. The system must be opened and then, once the hard drive is installed, software is reconfigured to recognise the hard drive. All of this is done by a technician and is time consuming, resulting in xe2x80x9cdown timexe2x80x9d for an employee whose system is being upgraded. Of course, when an entire network is formed of similar computers, upgrading of the network is extremely costly and inconvenient.
In order to save on these two problems, companies with large networks often have a server. Employees store data files on the server for archival purposes so that their disk space remains unused. Unfortunately, this has many drawbacks. First, a larger operating system may not fit on a local hard disk drive and so, sometimes an upgrade still is required. Second, much local hard disk space is wasted while awaiting some future time when it will be necessary to a local user. Third, each employee maintains their own archiving procedures and therefore, some employees will fail to archive and as such will still require an upgrade.
Of course, when a server is full, addition of more storage space to the server requires shutting down the server. Alternatively, another server can be added. When another server is added, some user accounts are moved to the other server resulting in some disruption. Most notably, however, moving user accounts around often results in one server filling up often while another rarely or never runs out of storage space.
In order to overcome these and other disadvantages of the prior art, it is an object of the present invention to provide a virtual storage device that can be upgraded dynamically without affecting users of the computer network.
Preferably, such a system will efficiently use available storage resources.
In accordance with the invention there is provided a virtual storage device comprising:
a plurality of computers each comprising a non-volatile storage medium, locations within some of the non-volatile storage media corresponding to locations within the virtual storage device;
means for storing data: at locations within the virtual storage device, the data stored at locations within a non-volatile storage medium from the non-volatile storage media corresponding to the locations within the virtual storage device; and
means for storing index data, the index data for locating and retrieving data stored within the virtual storage device.
In accordance with another aspect of the invention there is provided a method of storing data in non-volatile storage comprising the steps of:
providing a virtual non-volatile storage medium having a plurality of corresponding physical non-volatile storage media associated therewith, locations within each physical non-volatile storage medium from the plurality of corresponding physical non-volatile storage media corresponding to locations within the virtual non-volatile storage medium;
providing data for storage in the virtual non-volatile storage medium;
determining free space at locations within the virtual storage medium, the free space sufficient for storing the provided data, the locations corresponding to locations within the plurality of corresponding physical non-volatile storage media having available storage space therein;
storing the provided data to the locations corresponding to the free space; and,
storing index information for the stored data.